package com.redsoil.house.model.http;

import com.redsoil.house.model.bean.CountAssetVO;
import com.redsoil.house.model.bean.DictListVO;
import com.redsoil.house.model.bean.MessageListVO;
import com.redsoil.house.model.bean.NewsVO;
import com.redsoil.house.model.bean.OneMessageVO;
import com.redsoil.house.model.bean.OnePropertyVO;
import com.redsoil.house.model.bean.PdfVO;
import com.redsoil.house.model.bean.ProductDetailVO;
import com.redsoil.house.model.bean.ProductsVO;
import com.redsoil.house.model.bean.PropertyLeaseVO;
import com.redsoil.house.model.bean.PropertyListVO;
import com.redsoil.house.model.bean.ReceiptListVO;
import com.redsoil.house.model.bean.ReceiptTotalVO;
import com.redsoil.house.model.bean.RoomEarnVO;
import com.redsoil.house.model.bean.RoomFileVO;
import com.redsoil.house.model.bean.UserVO;
import com.redsoil.house.model.http.response.HttpResponse;

import io.reactivex.Flowable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * 作者：weidingqiang on 2017/7/11 09:56
 * 邮箱：dqwei@iflytek.com
 */

public interface HttpHelper {

    //登陆接口
    Flowable<HttpResponse<UserVO>> postLogin(String username, String password);

    //登出
    Flowable<HttpResponse<String>> logout(String Authorization);

    //找回密码
    Flowable<HttpResponse<String>> findPwd(String email);

    //修改密码
    Flowable<HttpResponse<String>> modifyPwd(String Authorization, String oldPassword, String newPassword);

    Flowable<HttpResponse<PropertyListVO>> getPropertyList(String Authorization, String typeCode);

    Flowable<HttpResponse<OnePropertyVO>> getOneProperty(String Authorization, String id,String moneyTypeCode,String type);

    Flowable<HttpResponse<PropertyLeaseVO>> getPropertyLease(String Authorization, String roomId,String moneyTypeCode);

    Flowable<HttpResponse<RoomFileVO>> getRoomFile(String Authorization, String roomId);

    Flowable<HttpResponse<NewsVO>> postNews(String Authorization,String type);

    Flowable<HttpResponse<ProductsVO>> postProducts(String Authorization, String page, String pageSize);

    Flowable<HttpResponse<ProductDetailVO>> postProductDetail(String Authorization, String id);

    Flowable<HttpResponse<String>> postOrder(String Authorization, String productId, String price, String count, String customerMobile,
                                             String receivingAddr, String receivingName, String buyerMsg, String type, String expressFee);

    Flowable<HttpResponse<MessageListVO>> getMessageList(String Authorization,String keywords);

    Flowable<HttpResponse<OneMessageVO>> getOneMessage(String Authorization, String id);

    Flowable<HttpResponse<String>> affirm(String Authorization, String id,String nowPrice,String isSamePrice);

    Flowable<HttpResponse<String>> importance(String Authorization, String ids,String state);

    Flowable<HttpResponse<String>> lock(String Authorization, String ids,String state);

    Flowable<HttpResponse<String>> delete(String Authorization, String ids);

    Flowable<HttpResponse<RoomEarnVO>> getRoomEarnList(String Authorization,String roomId,String accountDate,String moneyTypeCode,String realtyId);

    Flowable<HttpResponse<DictListVO>> getDictList(String Authorization, String type);

    Flowable<HttpResponse<ReceiptTotalVO>> postReceiptTotal(String Authorization, String moneyType, String paymentYear);

    Flowable<HttpResponse<ReceiptListVO>> postReceiptList(String Authorization, String moneyType, String paymentYear);

    Flowable<HttpResponse<CountAssetVO>> countAsset(String Authorization, String moneyTypeCode);

    Flowable<HttpResponse<String>> modifyEmail(String Authorization, String email);

    Flowable<HttpResponse<PdfVO>> exportEarnings(String Authorization, String exportType, String exportVaule);

}
